﻿using System;
using System.Data;
using System.Configuration;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GC2.Bussines.BMSeguridad;
using GC2.Entities.Seguridad;


public partial class _Default : GenericPage 
{
    
    protected void Page_Load(object sender, EventArgs e)
    {
        Usuarios usu = null;
        if (Request.QueryString["p"] != null)
        {            
            GC2.Funciones.Encriptar.Seguridad s = new GC2.Funciones.Encriptar.Seguridad();
            usu = s.UsuarioIngreso(Request.QueryString["p"].ToString());
            if (usu != null)
            {
                txtLogin.Text = usu.Login;
                txtPassword.Text = usu.Password;
                txtCliente.Text = usu.Cliente;
            }
        }

        SetearCultura();
        SetearConexion();
        if (!IsPostBack)
        {            
            Session.Clear();
            lblAccion.Text = "";
            Session["Intentos"] = 0;
        }

        if (usu != null)
        {
            Ingresar();
        }
        usu = null;
    }

    protected void btnIngresar_Click(object sender, EventArgs e)
    {
        Ingresar();
    }

    private void Ingresar()
    {
        try
        {
            Usuarios usuario = new Usuarios();
            List<Usuarios> listUsuarios = new List<Usuarios>();
            Usuarios usuarioTemp = new Usuarios();
            bool ingreso = true;
            int intentos;
            intentos = Convert.ToInt16(Session["Intentos"].ToString());
            if (intentos > 3)
            {
                btnIngresar.Enabled = false;
                lblAccion.Text = "Ingreso Denegado";
            }
            usuario.Login = txtLogin.Text.Trim();
            usuario.Password = txtPassword.Text.Trim();
            usuario.Cliente = txtCliente.Text.Trim().ToLower();

            Connection = usuario.Cliente;

            BMUsuarios bmUsuario = new BMUsuarios(Connection);

            listUsuarios = bmUsuario.BMUsuarioSearch(usuario);
            usuarioTemp = listUsuarios[0];
            if (usuarioTemp != null)
            {
                if (usuarioTemp.Login != usuario.Login)
                {
                    lblAccion.Text = "Usuario Incorrecto";
                    ingreso = false;
                    intentos += 1;
                    Session["Intentos"] = intentos;
                }
                else if (usuarioTemp.Password != usuario.Password)
                {
                    lblAccion.Text = "Clave Incorrecta";
                    ingreso = false;
                    intentos += 1;
                    Session["Intentos"] = intentos;
                }
                else if (!usuarioTemp.ClienteOK)
                {
                    lblAccion.Text = "Cliente Incorrecto";
                    ingreso = false;
                    intentos += 1;
                    Session["Intentos"] = intentos;
                }
            }
            else
            {
                lblAccion.Text = "Usuario no Existe";
                ingreso = false;
                intentos += 1;
                Session["Intentos"] = intentos;
            }

            if (ingreso)
            {
                usuario = usuarioTemp;
                Session["UsuarioActual"] = usuario;
                Response.Redirect("~/Seguridad/Default.aspx", false);
            }
        }
        catch (Exception ex)
        { throw ex; }    
    }
}
